#!/usr/bin/env python
"""
Django Admin 学习项目演示脚本
运行此脚本来快速设置完整的演示环境
"""
import os
import sys
import django
from pathlib import Path

def setup_environment():
    """设置Django环境"""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'admin_learn_project.settings')
    django.setup()

def run_demo():
    """运行完整的演示设置"""
    print("🚀 Django Admin 学习项目演示")
    print("=" * 50)

    try:
        setup_environment()

        print("✅ Django环境已设置")

        # 导入必要的模块
        from django.core.management import execute_from_command_line
        from django.contrib.auth.models import Group
        from core.models import CustomUser
        from products.models import Product, Category, Brand
        from orders.models import Order

        # 检查数据库状态
        print("\n📊 检查当前数据状态...")
        print(f"   用户总数: {CustomUser.objects.count()}")
        print(f"   产品总数: {Product.objects.count()}")
        print(f"   分类总数: {Category.objects.count()}")
        print(f"   品牌总数: {Brand.objects.count()}")
        print(f"   订单总数: {Order.objects.count()}")
        print(f"   用户组数: {Group.objects.count()}")

        # 显示可用的管理后台
        print("\n🏢 可用的管理后台:")
        admin_sites = [
            ("默认Admin后台", "/admin/", "Django默认的admin后台，包含所有功能"),
            ("超级管理员后台", "/super-admin/", "最高权限的管理后台，包含数据统计和报表"),
            ("产品管理后台", "/product-admin/", "专门管理产品、分类和品牌的后台"),
            ("订单管理后台", "/order-admin/", "专门处理订单和支付的后台"),
            ("用户管理后台", "/user-admin/", "专门管理用户和权限的后台"),
        ]

        for i, (name, url, desc) in enumerate(admin_sites, 1):
            print(f"   {i}. {name}")
            print(f"      URL: http://127.0.0.1:8000{url}")
            print(f"      描述: {desc}")
            print()

        # 显示登录信息
        print("🔑 登录账户信息:")
        accounts = [
            ("超级管理员", "admin", "admin123", "所有功能"),
            ("产品管理员", "product_admin", "admin123", "产品相关"),
            ("订单管理员", "order_admin", "admin123", "订单相关"),
            ("用户管理员", "user_admin", "admin123", "用户相关"),
        ]

        for role, username, password, permissions in accounts:
            print(f"   角色: {role}")
            print(f"   用户名: {username}")
            print(f"   密码: {password}")
            print(f"   权限: {permissions}")
            print()

        # 显示特色功能
        print("✨ 项目特色功能:")
        features = [
            "🎨 多种Admin界面风格对比",
            "🔐 基于角色的权限分离",
            "📊 实时数据统计看板",
            "🖼️ 图片预览和管理",
            "🔍 高级搜索和过滤",
            "⚡ 批量操作功能",
            "📈 数据分析和报表",
            "🎯 内联编辑支持",
            "🌈 彩色状态标签",
            "📱 响应式界面设计"
        ]

        for feature in features:
            print(f"   {feature}")

        print("\n" + "=" * 50)
        print("🎓 学习建议:")
        print("1. 先访问首页 http://127.0.0.1:8000 了解整体结构")
        print("2. 依次体验不同的管理后台，对比功能差异")
        print("3. 使用不同角色的账户登录，体验权限控制")
        print("4. 查看源代码，学习实现方法")
        print("5. 阅读 README.md 了解详细文档")

        print("\n📚 学习路径推荐:")
        learning_path = [
            "基础: 了解Django Admin的默认功能",
            "进阶: 学习自定义字段显示和过滤器",
            "高级: 掌握多站点管理和权限控制",
            "专家: 深度定制界面和扩展功能"
        ]

        for i, step in enumerate(learning_path, 1):
            print(f"   {i}. {step}")

        print("\n🚀 现在可以开始您的Django Admin学习之旅了！")
        print("访问: http://127.0.0.1:8000")

    except Exception as e:
        print(f"❌ 发生错误: {e}")
        print("请确保已经运行了以下命令:")
        print("1. python manage.py migrate")
        print("2. python create_test_data.py")
        print("3. python setup_permissions.py")
        print("4. python manage.py runserver")

if __name__ == '__main__':
    run_demo()
